package managedbean;

import fr.afcepf.atod16.groupe1.projet2.dto.DtoCommandeStock;
import fr.afcepf.atod16.groupe1.projet2.enumerations.EtatLivraison;
import fr.afcepf.atod16.groupe1.projet2.serviceCommande.ServiceCommandeStockLocal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

@ManagedBean(name="mbCommande")
@RequestScoped
public class MbCommande {

    @EJB
    private ServiceCommandeStockLocal serviceCommande;
    
    private List<DtoCommandeStock> listeCommande;

    public MbCommande() {
    }
    
    @PostConstruct
    public void init(){
        listeCommande = serviceCommande.getListe();
        FacesContext.getCurrentInstance().getExternalContext().getSession(true);
    }
    
    public List<DtoCommandeStock> getListe() {
        return listeCommande;
    }

    public List<SelectItem> getEtatLivraisonListe() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (EtatLivraison type: EtatLivraison.values()) {
            items.add(new SelectItem(type, type.toString()));
        }
        return items;
    }
    
    public void handleChange(DtoCommandeStock commande, String newEtat) {  
          if(newEtat.equals("EN_PREPARATION")) {
              serviceCommande.modifierEtatLivraison(commande.getId(), EtatLivraison.EN_PREPARATION);
          }
          if(newEtat.equals("BLOQUE")) {
              serviceCommande.modifierEtatLivraison(commande.getId(), EtatLivraison.BLOQUE);
          }
          if(newEtat.equals("EXPEDIE")) {
              serviceCommande.modifierEtatLivraison(commande.getId(), EtatLivraison.EXPEDIE);
          }
          if(newEtat.equals("LIVRE")) {
              serviceCommande.modifierEtatLivraison(commande.getId(), EtatLivraison.LIVRE);
          }
    }  
}
